Computer graphics processing systems, set top box systems or other graphics processing systems typically include a host processor, graphics/video processing circuitry, memory (e.g. frame buffer), and one or more display devices. The host processor may have a graphics application running thereon, which provides vertex data for a primitive (e.g. triangle) to be rendered on the one or more display devices. The display device, for example, a CRT display includes a plurality of scan lines comprised of a series of pixels. The graphics/video processing circuitry receives the vertex data and generates pixel data including appearance attributes (e.g. color, luminance, texture, stippling) which may be presented on the display devices according to a particular protocol. The pixel data is typically stored in the frame buffer in a manner that corresponds to the pixels location on the display device.
Display devices present an object or image to the viewer as an array of individual picture elements, or pixels. The pixels are each given a specific characteristic, for example, the color or texture of the object at the particular pixel's location. The pixels are closely spaced relative to one another and the corresponding display device filters the individual pixel color and texture values to form a composite image. If the pixel filtering is performed properly, the viewer perceives the displayed array of pixels as a virtually continuous image. However, despite the filtering, the viewer remains sensitive to aberrations (e.g. color or texture differences) in the rendered object, and graphics processing circuitry must be designed to minimize these aberrations. Visual aberrations may result, for example, when the image is insufficiently sampled.
Aliasing occurs in an image, for example, when the pixel sampling rate is significantly less than the highest frequency change in an image. If the pixel sampling frequency, for example, is less than twice the image's frequency of change, aliasing will occur and visual aberrations, such as improper or distorted coloring or texturing, will be introduced into the image. In addition to improper or distorted coloring or texturing, sampling artifacts (e.g. stair-step edges) may be introduced into the image. Conventional graphics processing circuitry typically contains several look-up tables or rely on full scene anti-aliasing to support anti-aliasing operations. The look-up tables can take up a significant amount of on chip real estate; thereby, preventing other graphics and/or video processing capabilities from being supported. In addition, accessing the several look-up tables to complete anti-aliasing operations takes up valuable processing time from other operations; thereby, decreasing graphics processing circuitry performance. Moreover, full scene anti-aliasing is costly from a performance standpoint and typically results in low quality images.
Stippling is the operation of masking out certain fragments produced by rasterization, thereby creating a stippling pattern. The stippling pattern is subsequently applied to rendered objects; thereby providing texture to the rendered object. Appearance attribute determination operations, such as stippling, typically are performed in the final rendering engine of the graphics/video processing circuitry, and are performed separate from and subsequent to the anti-aliasing on the object that the stippling pattern is to be applied. Such separate processing decreases graphics processing circuitry performance, for example, as the anti-aliasing operations are performed on the object before stippling and other appearance attribute operations are performed on the object. Thus, several processing passes per pixel are required before the object can be rendered.
FIG. 1 is a schematic representation of a line segment 10 being rendered onto a two dimensional space 12. The two dimensional space 12 may correspond to the screen space of a suitable display device (not shown). The two-dimensional space 12 is represented by a plurality of intersecting horizontal and vertical lines that form pixels 11. A pixel is one of a series of points along a raster scan line that when viewed in the aggregate, provides an image that may be presented on a suitable display device and perceived by a user. The line segment 10 may be provided, for example, by a larger primitive (e.g. triangle) intersecting the pixels 11 that define the two dimensional space 12.
To make an object, including the line segment 10, look more realistic when rendered on the two dimensional space 12, the line segment 10 is provided with an appearance attribute, for example, color, texture or other suitable attribute. A stippling pattern is one type of appearance attribute that may be applied to the sample points 14 along the line segment 10. The stippling pattern (e.g. a checkerboard design) is typically retrieved from a dedicated memory that is separate from, and does not contain, other types of appearance attributes (e.g. color, brightness). In conventional graphics processing systems, dedicated hardware is used to determine whether a particular sample point 14 is within the stippling pattern, and additional dedicated hardware is used to draw the stippling pattern at the sample point 14, if such sample point is determined to be within the stippling pattern. In those situations when the sample point is not within the center of the corresponding pixel, the rendered object may lack clarity as the stippling pattern is aligned with display screen position and not pixel position. Additionally, the several pieces of dedicated hardware required to apply the stippling pattern take up a significant amount of on-chip real estate, and the multiple memory look up operations required to retrieve and apply the stippling pattern takes up valuable processing time.